/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Frontera;

import Entidad.Analisis;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Juan
 */
public class ModeloTablaAnalisis extends DefaultTableModel{

    public ModeloTablaAnalisis() {
        super(
            new Object [][] {
                {false, false, "PRT-GT-01 WDXRF-OMNIAN PASTILLA"},
                {false, false, "PRT-GT-03 EDXRF-AUTOQUANTIFY"},
                {false, false, "PRT-GT-02 WDXRF-OMNIAN HELIO"},
                {false, false, "PRT-GT-04 EDXRF-AQCONDITION"},
                {false, false, "PRT-GT-22 WDXRF-OMNIAN PERLA"},
                {false, false, "PRT-GT-24 WDXRF-OMNIAN SÓLIDO"},
                {false, false, "PRT-GT-25 EDXRF-AUTOQU. SÓLIDO"},
                {false, false, "PRT-GT-17 EDXRF-Pb VIDRIOS"},
                {false, false, "PRT-GT-05 WDXRF-WROXI LOI"},
                {false, false, "PRT-GT-07 WDXRF-WROXI TNWS"},
                {false, false, "PRT-GT-10 WDXRF-VIDRIOS"},
                {false, false, "PRT-GT-06 WDXRF-CLINKER"},
                {false, false, "PRT-GT-20 EDXRF-PROTRACE"},
                {false, false, "PRT-GT-13 EDXRF-EPA IO-3.3 (1999)"},
                {false, false, "PRT-GT-16 EDXRF-EPA IO-3.3 CUARZO (1999)"},
                {false, false, "PRT-GT-07 WDXRF-WROXI TNWS Y PRT-GT-20 EDXRF-PROTRACE"},
                {false, false, "PRT-GT-11 XRD-RIETVELD"},
                {false, false, "PRT-GT-19 MEDICIÓN XRD"},
                {false, false, "PRT-GT-21 XRD CUALITATIVO"},
                {false, false, "PRT-GT-11 XRD RIETVELD Y PRT-GT-23 XRD AMORFOS"},
                {false, false, "PRT-GT-15 ENSAYO TAMIZADO"},
                {false, false, "PRT-GT-18 MEDICIÓN RADIACIÓN"},
                {false, false, "PRT-GT-26 PESO ESPECÍFICO"}
            },
            new String [] {
                "Rush", "Normal", "Análisis"
            }
        );
    }
    
    Class[] types = new Class [] {
                java.lang.Boolean.class, java.lang.Boolean.class, java.lang.String.class
            };
    boolean[] canEdit = new boolean [] {
        true, true, false
    };

    @Override
    public Class getColumnClass(int columnIndex) {
        return types [columnIndex];
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return canEdit [columnIndex];
    }
    
    private int getValorFila(int fila){
        if(getValueAt(fila, 0) == true)
            return Analisis.RUSH;
        else if(getValueAt(fila, 1) == true)
            return Analisis.NORMAL;
        else
            return Analisis.NO_SELECCIONADO;
    }
    
    private void setValorFila (int fila, int valor) {
        if (valor == Analisis.RUSH)
            setValueAt(true, fila, 0);
        else if (valor == Analisis.NORMAL)
            setValueAt(true, fila, 1);
    }
    
    public Analisis toAnalisis() {
        boolean algunoSeleccionado = false;
        Analisis analisis = new Analisis();
        int[] valores = analisis.getValores();
        
        for (int i = 0; i < 23; i++) {
            valores[i] = getValorFila(i);
            if(valores[i] != Analisis.NO_SELECCIONADO)
                algunoSeleccionado = true;
        }
        
        if(algunoSeleccionado){
            analisis.setValores(valores);
            return analisis;
        }else{
            return null;
        }
    }
    
    public void setValores (Analisis analisis) {
        int[] valores = analisis.getValores();
        for (int i = 0; i < 23; i++) {
            setValorFila(i, valores[i]);
        }
    }
    
}
